package com.tanhua.server.controller;

import com.tanhua.domain.vo.RecommendUserQueryParam;
import com.tanhua.server.service.BaiduService;
import com.tanhua.server.service.RecommendService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@RestController
@RequestMapping("/tanhua")
public class TanhuaController {

    @Autowired
    private RecommendService recommendService;




    //    探花卡片显示   默认先查询20条数据
//    1、请求方式 get
//    2、请求地址 /tanhua/cards
//    3、请求参数 类型application/json  请求头上有Authorization
//    4、返回结果 RecommendUserVo
    @GetMapping(value = "/cards",name = "查询今日佳人  查询缘分值最高的那个推荐人")
    public ResponseEntity cards(){
        return recommendService.queryRecommendUser(20);
    }


    //    查询今日佳人  查询缘分值最高的那个推荐人
//    1、请求方式 get
//    2、请求地址 /tanhua/todayBest
//    3、请求参数 类型application/json  请求头上有Authorization
//    4、返回结果 RecommendUserVo
    @GetMapping(value = "/todayBest",name = "查询今日佳人  查询缘分值最高的那个推荐人")
    public ResponseEntity queryTodayBest(){
        return recommendService.queryTodayBest();
    }


//    查询更多推荐的佳人  可以根据缘分值倒序
//    1、请求方式 get
//    2、请求地址 /tanhua/recommendation
//    3、请求参数 类型application/json  请求头上有Authorization
//        Query上带了很多参数 page  pagesize  gender  lastLogin等等
//    4、返回结果 分页对象
    @GetMapping(value = "/recommendation",name = "查询更多推荐的佳人  可以根据缘分值倒序")
    public ResponseEntity queryRecommendation(RecommendUserQueryParam param){
        return recommendService.queryRecommendation(param);
    }

    //    查询佳人的详细信息
//    1、请求方式 get
//    2、请求地址 /tanhua/:id/personalInfo
//    3、请求参数 类型application/json  请求头上有Authorization
//       路径参数 id
//     4、返回结果 RecommendUserVo
    @GetMapping(value = "/{id}/personalInfo",name = "查询佳人的详细信息")
    public ResponseEntity queryPersonalInfo(@PathVariable("id") Long userId){
        return recommendService.queryPersonalInfo(userId);
    }
    //    查询佳人的陌生人问题
//    1、请求方式 get
//    2、请求地址 /tanhua/strangerQuestions
//    3、请求参数 类型application/json  请求头上有Authorization
//       Query参数   userId
//     4、返回结果 字符串
    @GetMapping(value = "/strangerQuestions",name = "查询佳人的陌生人问题")
    public ResponseEntity strangerQuestions(Long userId){
        return recommendService.queryStrangerQuestions(userId);
    }


//    回复佳人的陌生人问题
//    1、请求方式 Post
//    2、请求地址 /tanhua/strangerQuestions
//    3、请求参数 类型application/json  请求头上有Authorization
//       Body参数   {userId:2,reply:"B就够了"}
//     4、返回结果
    @PostMapping(value = "/strangerQuestions",name = "回复佳人的陌生人问题")
    public ResponseEntity strangerQuestions(@RequestBody Map param){
        Long userId = Long.parseLong( param.get("userId")+"" );
        String reply = (String) param.get("reply");
        return recommendService.replyStrangerQuestions(userId,reply);
    }


    //    探花-右滑喜欢
//    1、请求方式 get
//    2、请求地址 /tanhua/:id/love
//    3、请求参数 类型application/json  请求头上有Authorization
//         路径参数id
//    4、返回结果
    @GetMapping(value = "/{id}/love",name = "探花-右滑喜欢")
    public ResponseEntity love(@PathVariable("id") Long loveUserId){
        return recommendService.love(loveUserId);
    }
    //    探花-左滑不喜欢
//    1、请求方式 get
//    2、请求地址 /tanhua/:id/unlove
//    3、请求参数 类型application/json  请求头上有Authorization
//         路径参数id
//    4、返回结果
    @GetMapping(value = "/{id}/unlove",name = "探花-左滑不喜欢")
    public ResponseEntity unlove(@PathVariable("id") Long loveUserId){
        return recommendService.unlove(loveUserId);
    }




    @Autowired
    private BaiduService baiduService;


//     搜附近的人
 //    1、请求方式 get
//    2、请求地址 /tanhua/search
//    3、请求参数 类型application/json  请求头上有Authorization
//         Query参数  gender  distance
//    4、返回结果
    @GetMapping(value = "/search",name = "搜附近的人")
    public ResponseEntity search(String gender,Integer distance ){
        return baiduService.search(gender,distance);
    }



}
